home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / bmpkit / bmpkit.frm < prev    next >
Text File  |  1995-05-08  |  11KB  |  387 lines

  1. VERSION 2.00
  2. Begin Form Form1 
  3.    Caption         =   "Form1"
  4.    ClientHeight    =   4020
  5.    ClientLeft      =   1125
  6.    ClientTop       =   2010
  7.    ClientWidth     =   7365
  8.    Height          =   4425
  9.    Left            =   1065
  10.    LinkMode        =   1  'Source
  11.    LinkTopic       =   "Form1"
  12.    ScaleHeight     =   2.792
  13.    ScaleMode       =   5  'Inch
  14.    ScaleWidth      =   5.115
  15.    Top             =   1665
  16.    Width           =   7485
  17.    Begin CommandButton Command4 
  18.       Caption         =   "Show Original "
  19.       Height          =   375
  20.       Left            =   5640
  21.       TabIndex        =   12
  22.       Top             =   3480
  23.       Width           =   1335
  24.    End
  25.    Begin CommandButton Command5 
  26.       Caption         =   "Hide Original"
  27.       Height          =   375
  28.       Left            =   5640
  29.       TabIndex        =   13
  30.       Top             =   3000
  31.       Width           =   1335
  32.    End
  33.    Begin CommandButton Command3 
  34.       Caption         =   "Print"
  35.       Height          =   375
  36.       Left            =   6480
  37.       TabIndex        =   2
  38.       Top             =   2520
  39.       Width           =   735
  40.    End
  41.    Begin CommandButton Command2 
  42.       Caption         =   "Display"
  43.       Height          =   375
  44.       Left            =   5640
  45.       TabIndex        =   1
  46.       Top             =   2520
  47.       Width           =   735
  48.    End
  49.    Begin HScrollBar HScroll1 
  50.       Height          =   255
  51.       Left            =   5160
  52.       TabIndex        =   6
  53.       Top             =   960
  54.       Width           =   1215
  55.    End
  56.    Begin OptionButton Option2 
  57.       Caption         =   "Size"
  58.       Height          =   255
  59.       Left            =   5160
  60.       TabIndex        =   9
  61.       Top             =   600
  62.       Width           =   855
  63.    End
  64.    Begin PictureBox Picture2 
  65.       AutoRedraw      =   -1  'True
  66.       Height          =   1335
  67.       Left            =   840
  68.       ScaleHeight     =   0.906
  69.       ScaleMode       =   5  'Inch
  70.       ScaleWidth      =   0.906
  71.       TabIndex        =   4
  72.       Top             =   600
  73.       Width           =   1335
  74.    End
  75.    Begin OptionButton Option1 
  76.       Caption         =   "Move"
  77.       Height          =   255
  78.       Left            =   5160
  79.       TabIndex        =   8
  80.       Top             =   240
  81.       Width           =   855
  82.    End
  83.    Begin VScrollBar VScroll1 
  84.       Height          =   1095
  85.       Left            =   6480
  86.       TabIndex        =   7
  87.       Top             =   120
  88.       Width           =   255
  89.    End
  90.    Begin CommandButton Command1 
  91.       Caption         =   "Exit"
  92.       Height          =   375
  93.       Left            =   4080
  94.       TabIndex        =   0
  95.       Top             =   120
  96.       Width           =   735
  97.    End
  98.    Begin PictureBox Picture1 
  99.       AutoSize        =   -1  'True
  100.       Height          =   495
  101.       Left            =   120
  102.       ScaleHeight     =   0.323
  103.       ScaleMode       =   5  'Inch
  104.       ScaleWidth      =   0.323
  105.       TabIndex        =   3
  106.       Top             =   120
  107.       Width           =   495
  108.    End
  109.    Begin Label Label3 
  110.       AutoSize        =   -1  'True
  111.       Height          =   195
  112.       Left            =   5160
  113.       TabIndex        =   11
  114.       Top             =   2160
  115.       Width           =   75
  116.    End
  117.    Begin Label Label2 
  118.       AutoSize        =   -1  'True
  119.       Height          =   195
  120.       Left            =   5160
  121.       TabIndex        =   10
  122.       Top             =   1800
  123.       Width           =   75
  124.    End
  125.    Begin Label Label1 
  126.       Alignment       =   2  'Center
  127.       Caption         =   "Scaled Image"
  128.       Height          =   255
  129.       Left            =   840
  130.       TabIndex        =   5
  131.       Top             =   120
  132.       Width           =   1335
  133.    End
  134. End
  135. Sub Command1_Click ()
  136. End
  137. End Sub
  138.  
  139. Sub command2_click ()
  140.  
  141. 'Make sure we have valid scaling values
  142. If scalex = 0 Then scalex = 1
  143. If scaley = 0 Then scaley = 1
  144.  
  145. 'Set picture2.width to match picture1, with scaling.
  146. 'The 3.14 divisor matches inch dimension with the
  147. '640X480 screen dimensions. Change for other display
  148. 'adapters.
  149.  
  150. Picture2.width = (picture1.width / 3.14) * scalex
  151. Picture2.height = (picture1.height / 3.14) * scaley
  152.  
  153. '*Set constants for GDI calls
  154. Const NULL = 0&
  155. Const SRCCOPY = &HCC0020
  156. Const NEWFRAME = 1
  157. Const pixel = 3
  158.  
  159. '*Display scaled version in Picture2
  160. '*StretchBlt requires pixel coordinates.
  161.  
  162. picture1.scalemode = 3
  163. Picture2.scalemode = 3
  164.  
  165. 'Set Dimensions for Picture2
  166.  
  167. Picture2.scalewidth = picture1.scalewidth / 3.14 * scalex
  168. Picture2.scaleheight = picture1.scaleheight / 3.14 * scaley
  169.  
  170. '*Do not change the order of these statements.
  171. hMemoryDC% = CreateCompatibleDC(picture1.hDC)
  172. hOldBitMap% = SelectObject(hMemoryDC%, picture1.Picture)
  173.  
  174. 'Variables for the StretchBlt function:
  175. '1. Source of image HMemeoryDC% -- set above from original picture
  176. '2,3. Positioning on output object. Must be integer, in pixels.
  177. '4,5. Width, height of output image. Here we use the values set above.
  178. '6, Source of image...in this case the memory image set by CreateCompatibleDC% function
  179. '7,8. Don't know. Set to 0 works just fine! Experiment and let me know.
  180. '9,10. X/Y coordinates for how much of original to put in new object. You can use
  181. 'these values for cropping, if you like.
  182. '11. SRCCOPY, as set in constants above. Change at own risk.
  183.  
  184. ApiError% = StretchBlt(Picture2.hDC, Int(Picture2.left), Int(Picture2.top), Picture2.scalewidth, Picture2.scaleheight, hMemoryDC%, 0, 0, picture1.scalewidth, picture1.scaleheight, SRCCOPY)
  185. hOldBitMap% = SelectObject(hMemoryDC%, hOldBitMap%)
  186. ApiError% = DeleteDC(hMemoryDC%)
  187.  
  188. Picture2.Refresh
  189.  
  190. '*Reset scalemodes to previous inch values
  191. picture1.scalemode = 5
  192. Picture2.scalemode = 5
  193.  
  194. End Sub
  195.  
  196. Sub Command3_Click ()
  197. '* Print all items other than the image first.
  198.  
  199. printer.scalemode = 5
  200.  
  201. printer.currentx = 3
  202. printer.currenty = 3
  203. printer.Print "Hello"
  204.  
  205. printer.currenty = 4
  206. printer.currentx = 1
  207. printer.drawwidth = 5
  208. printer.Line -Step(printer.currentx + 2, 0)
  209.  
  210. '*After printing all other elements include your BMP
  211. 'printing routine, as below.
  212.  
  213.  
  214. '* Print Scaled Image
  215.  
  216. '*Make certain we have valid scaling values
  217. If scalex = 0 Then scalex = 1
  218. If scaley = 0 Then scaley = 1
  219.  
  220. '*Set GDI Constants
  221. Const NULL = 0&
  222. Const SRCCOPY = &HCC0020
  223. Const NEWFRAME = 1
  224. Const pixel = 3
  225.  
  226.  
  227. '* StretchBlt requires pixel coordinates.
  228.  
  229. picture1.scalemode = pixel
  230. printer.scalemode = pixel
  231.  
  232. '*First two variables are the x,y coordinates (in Pixels)
  233. 'for the placement of images on the printed page. Since the
  234. 'form's ScaleMode is 5 for inches, multiply by 300 to
  235. 'match the the current inch positions of Picture2 on
  236. 'the 300 DPI device.
  237.  
  238. '*Second pair of variables set the height and width of the
  239. 'graphic to match the pixel size of the original picture
  240. 'in the invisible Picture1 box.
  241.  
  242. printgraphicx% = Picture2.left * 300
  243. printgraphicy% = Picture2.top * 300
  244.  
  245. printer.scalewidth = picture1.scalewidth * scalex
  246. printer.scaleheight = picture1.scaleheight * scaley
  247.  
  248. '*Do not change the order of these statements.
  249.  
  250. hMemoryDC% = CreateCompatibleDC(picture1.hDC)
  251. hOldBitMap% = SelectObject(hMemoryDC%, picture1.Picture)
  252.    
  253. 'Variables for the StretchBlt function:
  254. '1. Source of image HMemeoryDC% -- set above from original picture
  255. '2,3. Positioning on output object. Must be integer, in pixels.
  256. '4,5. Width, height of output image. Here we use the values set above.
  257. '6, Source of image...in this case the memory image set by CreateCompatibleDC% function
  258. '7,8. Don't know. Set to 0 works just fine! Experiment and let me know.
  259. '9,10. X/Y coordinates for how much of original to put in new object. You can use
  260. 'these values for cropping, if you like.
  261. '11. SRCCOPY, as set in constants above. Change at own risk.
  262.  
  263.  
  264. ApiError% = StretchBlt(printer.hDC, printgraphicx%, printgraphicy%, printer.scalewidth, printer.scaleheight, hMemoryDC%, 0, 0, picture1.scalewidth, picture1.scaleheight, SRCCOPY)
  265.    
  266. hOldBitMap% = SelectObject(hMemoryDC%, hOldBitMap%)
  267. ApiError% = DeleteDC(hMemory